package com.dilidili.service;

import com.dilidili.esentity.VideoPojo;
import com.domain.Video;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 【请填写功能名称】Service接口
 * 
 * @author ruoyi
 * @date 2022-03-31
 */
public interface IVideoService 
{
    /**
     * 查询【请填写功能名称】
     * 
     * @param videoId 【请填写功能名称】主键
     * @return 【请填写功能名称】
     */
    public Video selectVideoByVideoId(Long videoId);

    /**
     * 查询【请填写功能名称】列表
     * 
     * @param video 【请填写功能名称】
     * @return 【请填写功能名称】集合
     */
    public List<Video> selectVideoList(Video video);

    /**
     * 新增【请填写功能名称】
     * 
     * @param video 【请填写功能名称】
     * @return 结果
     */
    public int insertVideo(Video video);

    /**
     * 修改【请填写功能名称】
     * 
     * @param video 【请填写功能名称】
     * @return 结果
     */
    public int updateVideo(Video video);

    /**
     * 批量删除【请填写功能名称】
     * 
     * @param videoIds 需要删除的【请填写功能名称】主键集合
     * @return 结果
     */
    public int deleteVideoByVideoIds(Long[] videoIds);

    /**
     * 删除【请填写功能名称】信息
     * 
     * @param videoId 【请填写功能名称】主键
     * @return 结果
     */
    public int deleteVideoByVideoId(Long videoId);

    List<Map> animatedRandomVideo(Long smallzoneId);
    List<Map> animatedRandomVideoLeaderboard(Long smallzoneId);
    Video animatedRandomVideoById(Long videoId);

    void updateCount(Video video);

    List<Map> animatedRandomVideoFour();
    List<Map> animatedRandomVideoSix();

    List<Map> Submission(Integer userId,Integer bigzoneId,Integer videoState);

    Object delVideoOnline(Integer videoid);

    Object getVideoBarrageCount(Integer videoid);

    Object getVideoBarrageList(Integer videoid);

    List<Map> getNice(Integer userId, Integer videoId);

    List<Map> getCollect(Integer userId, Integer videoId);

    List<Map> getFans(Integer userId, Integer bigvId);

    Map getNiceNum(Integer videoId);

    Map getCollectNum(Integer videoId);



    List<VideoPojo> animatedRandomVideoAll();

    VideoPojo animatedRandomVideoId(Long videoId);
    void updateImg(Integer videoId);
    List<Map> byUserId(Integer userId);
    List<Map> manageReviews(String videoTitle, Integer userId);
    List<Video> queryByUserId(Long userId);

    List<Video> queryByUserIdContribute(Long userId);

    void Tombstone(Long videoId);

    /**
     * 随机视频推荐业务
     * @return
     */
    List<Video> randomVideo();

    /**
     * 总点赞数
     * @param userId 用户id
     * @return
     */
    Long easyNum(Long userId);
}
